package com.zyf.project.binaryproto.annotation;

import com.zyf.project.binaryproto.type.PrimitiveType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * <h1>数据契约——枚举类字段</h1>
 * <p>作用于字段或方法上</p>
 *
 * @author Zhou Yifan
 */
@Target({ElementType.FIELD, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface EnumField {

    /**
     * <p>枚举值的类型</p>
     * <p>注：支支持 {@link PrimitiveType#INT8} ~ {@link PrimitiveType#INT32} 这几种类型</p>
     *
     * @return
     */
    PrimitiveType type();
}
